#!/bin/bash

# Minidis功能测试脚本
echo "=== Minidis 功能测试 ==="

# 定义Redis CLI命令
REDIS_CLI="docker run --rm redis:alpine redis-cli -p 6379 -h host.docker.internal"

echo "1. 测试基础连接..."
$REDIS_CLI ping

echo -e "\n2. 测试字符串操作..."
$REDIS_CLI set hello world
$REDIS_CLI get hello
$REDIS_CLI append hello "!"
$REDIS_CLI get hello
$REDIS_CLI incr counter
$REDIS_CLI incr counter
$REDIS_CLI get counter

echo -e "\n3. 测试列表操作..."
$REDIS_CLI lpush mylist "item1" "item2" "item3"
$REDIS_CLI lrange mylist 0 -1
$REDIS_CLI rpop mylist
$REDIS_CLI llen mylist

echo -e "\n4. 测试哈希操作..."
$REDIS_CLI hset user:1 name "Alice"
$REDIS_CLI hset user:1 age "30"
$REDIS_CLI hget user:1 name
$REDIS_CLI hgetall user:1
$REDIS_CLI hexists user:1 email

echo -e "\n5. 测试集合操作..."
$REDIS_CLI sadd myset "apple" "banana" "cherry"
$REDIS_CLI smembers myset
$REDIS_CLI sismember myset "apple"
$REDIS_CLI scard myset

echo -e "\n6. 测试通用命令..."
$REDIS_CLI keys "*"
$REDIS_CLI type hello
$REDIS_CLI exists hello nonexistent
$REDIS_CLI ttl hello

echo -e "\n7. 测试TTL功能..."
$REDIS_CLI set temp "temporary" EX 5
$REDIS_CLI ttl temp
$REDIS_CLI get temp

echo -e "\n8. 测试服务器命令..."
$REDIS_CLI echo "Hello Minidis!"
$REDIS_CLI time
$REDIS_CLI info | head -10

echo -e "\n=== 测试完成 ==="